// Package business
// @Title business[简述该包的主要作用]
// @Description
// @Author  cnHuaShao
// @since v0.0.1
// @Version v1.0.0
// @Date 2024/4/21 22:33
// @Update 2024/4/21 22:33
package business

import (
	"FinancialManagement/conf"
	"FinancialManagement/src/base/baselog"
	"FinancialManagement/src/base/config"
	"FinancialManagement/src/business/router"
	"github.com/gin-contrib/sessions"
	"github.com/gin-contrib/sessions/cookie"
	"github.com/gin-gonic/gin"
	"net/http"
)

// APP_CODE_UI 应用标识样式，系统启动时打印
// http://patorjk.com/software/taag/#p=testall&h=0&v=0&f=Big&t=
const APP_CODE_UI = `
	财务仓储管理系统
`

// InitGin
// @Description: 核心启动gin框架函数，主函数
func InitGin() {
	// 设置gin启动模式
	// gin.SetMode(gin.ReleaseMode)
	baselog.SugarLogger.Infof("%s", APP_CODE_UI)
	// 初始化基础配置
	r := gin.New()
	r.StaticFS("/favicon.ico", http.FS(conf.StateFavicon))
	// 初始化网关
	router.InitRouter(r)
	// 创建基于cookie的存储引擎，shuiche 参数是用于加密的密钥，可以随便填写
	store := cookie.NewStore([]byte("cloudtopSession"))
	// 设置session有效期
	store.Options(sessions.Options{MaxAge: 86400 * 30})
	// 设置session中间件，参数mysession，指的是session的名字，也是cookie的名字
	r.Use(sessions.Sessions("sessionId", store))

	// 初始token
	// router.InitToken()
	r.Run(config.Get().Web.Host + ":" + config.Get().Web.Port)
}
